Không đếm giá trị lặp lại bằng (bỏ qua giá trị trùng lặp)
Có rất nhiều lúc chúng ta muốn đếm số lượng một danh sách nào đó tuy nhiên có quá nhiều giá trị lặp lại, trong khi mình cần lấy ra tổng số duy nhất trong danh sách đó.
Công thức kết hợp giữa hàm sumproduct và countif có thể giải quyết sự khó khăn này.
=SUMPRODUCT(1/COUNTIF(range,range))
Cách thức hoạt động
Công thức sẽ xử lý từ trong ra ngoài, hàm countif sẽ đếm dữ liệu trong range theo từng giá trị riêng lẻ. Kết quả trong mảng lúc này sẽ trông giống như sau {3;3;3;2;2;3;3;3;2;2}.
Sau khi kết thúc hàm countif các giá trị lặp lại sẽ sẽ được hiểu như là phân số với tử số là 1 và mẫu số là tổng, các giá trị chỉ xuất hiện 1 lần sẽ hiển thị là 1. ví dụ như có 6 số 3 thì lúc này sẽ là 1/6 = 0.16666.. và mảng sẽ như sau {0.16666;0.16666;0.16666;1;1;0.16666;0.16666;0.16666;1;1}
Cuối cùng hàm sumproduct sẽ tổng kết và cho ra con số cuối cùng.
Xử lý trong trường hợp có ô rỗng
Trong trường hợp có ô rỗng thì cần phải thay đổi lại công thức cho phù hợp như dưới đây
=SUMPRODUCT((range<>"")/COUNTIF(range,range&""))